﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Persistencia
{
    public class Sesion
    {
        Dictionary<string,TransaccionSesion> transacciones= new Dictionary<string,TransaccionSesion>();

        internal Sesion()
        {
        }

        public TransaccionSesion Transaccion(string nombre)
        {
            if (!transacciones.ContainsKey(nombre.ToLower()))
            {
                transacciones.Add(nombre.ToLower(), new TransaccionSesion(nombre.ToLower(),this));
            }
            return transacciones[nombre.ToLower()];
        }
        internal void CerrarTransaccion(TransaccionSesion transaccionSesion)
        {
             if (!transacciones.Remove(transaccionSesion.Nombre))
                    throw new Exception("La transaccion con nombre" + transaccionSesion.Nombre +" no existe.");

        }

        public void Dispose()
        {
            foreach (TransaccionSesion ts in transacciones.Values)
            {
                this.CerrarTransaccion(ts);
            }
        }
    }
}
